package com.cy.stone.system.infrastructure.database.entity;

import com.cy.stone.common.base.BaseEntity;
import com.mybatisflex.annotation.Table;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;

/**
 * 用户密码表 实体类。
 *
 * @author Wings
 * @since 2023-12-07
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "用户密码表")
@Table(value = "ST_USER_PASSWORD")
public class UserPasswordEntity extends BaseEntity {

    /**
     * 用户ID【对应USER表的ID】
     */
    @Schema(description = "用户ID【对应USER表的ID】")
    private String userId;

    /**
     * 用户名【对应USER表的USER_NAME】
     */
    @Schema(description = "用户名【对应USER表的USER_NAME】")
    private String userName;

    /**
     * 密码
     */
    @Schema(description = "密码")
    private String password;

    /**
     * 密码有效开始日期（包含）
     */
    @Schema(description = "密码有效开始日期（包含）")
    private LocalDate startDate;

    /**
     * 密码有效结束日期（包含）
     */
    @Schema(description = "密码有效结束日期（包含）")
    private LocalDate endDate;

    /**
     * 盐值-加密使用
     */
    @Schema(description = "盐值-加密使用")
    private String salt;

    /**
     * 密码错误次数
     */
    @Schema(description = "密码错误次数")
    private Integer pwdErrorCount;

}
